/**
 * // 题面：
随机生成一个N*N矩阵(用二维数组模拟,整个数组内不允许有重复数字)并找出鞍点（行最大的数，列最小的数）.
例如：
[
[1,9,4],
[8,2,5],
[7,6,3]
] 
不存在鞍点

[
[1,2,3],
[4,5,6],
[7,8,9]
]

鞍点为3
 */
function randomArr(n){
    let sourceArr=[];
    for(let i=1;i<=n*n;i++){
        sourceArr.push(i);
    }
    let targetArr=[];
    for(let i=0;i<n;i++){
        let rowArr=[];
        for(let j=0;j<n;j++){
            let ran=Math.floor(Math.random()*sourceArr.length);
            rowArr.push(sourceArr[ran]);
            sourceArr.splice(ran,1);
        }
        targetArr.push(rowArr);
    }
    return targetArr;
}
function getSaddle(arr=[]){   
    for(let i=0;i<arr.length;i++){
        let maxRow=Math.max(...arr[i]);//行最大
        let maxRowIndex=arr[i].indexOf(maxRow); //所在列；      
        let colArr=[];//所在列
        for(let j=0;j<arr.length;j++){
            colArr.push(arr[j][maxRowIndex])          
        }
        let minCol=Math.min(...colArr);//列最小
        if(maxRow==minCol){
            return maxRow;//找到鞍点；
        }
    }
    return null;
}
let arr=randomArr(3)
console.log(arr);
let saddle=getSaddle(arr)
console.log(saddle);